Generally described, computing devices, such as personal computing devices, provide computer users with a variety of functions. For example, most computing devices include word processing software applications that allow computer users to generate electronic documents. In a typical single user computing environment, the computing device manages electronic data, such as the electronic documents, on memory devices physically located on the device.
Most computing devices can utilize computing device communication networks, such as the Internet, that allow the computing devices to access data from other computing devices connected to the same communication network. One example of such an implementation is the transmission of electronic messages (“e-mail”) between computing devices. A more complex example includes the interaction between software applications between two computing devices to provide user functionality. More specifically, in one application, a user at a computing device may access data, such as word processing data, stored on another computing device in a common communications network. Additionally, the user at the computing device may also access other software applications that are provided by another computing device and that are not entirely maintained on the user' computing device. These types of applications can be referred to generally as server-based applications.
The development of mobile computing devices, such as palm-top computing devices, hand-held computing devices, personal digital assistants, pagers, mobile telephones, and the like, provide computer users with additional functionality. For example, a computer user may maintain data on the mobile device that can be accessed as needed by the user in various geographic areas. Additionally, in some embodiments, mobile devices can include wired connections and/or wireless connections that allow for the transmission of data between the mobile device and other computing devices on an intermittent basis. Nevertheless, many mobile devices are limited as to the amount of data that may be stored on the device and they number and type of software applications that may be utilized by the mobile device.
In an attempt to mitigate the deficiencies associated with mobile devices, some mobile devices can use server-based applications to provide data storage over a communication network. For example, the mobile device can recall electronic data maintained on high-storage capacity server computing devices as needed by the computing device. Additionally, the mobile device can utilize server-based application as a software distribution tool to provide executable instructions that allow the mobile device to offer additional software applications. However, most server-based application implementations require a continuous communication network connection to exchange data. Accordingly, if a mobile device has intermittent connectivity, such as due to varying wireless communication availability, incoming or outgoing data can be lost. Additionally, in most conventional implementations, if the network connection is lost, externally provided application programs might become unavailable. Thus, the traditional server-based application implementation is deficient in an intermittent connectivity environment, such as with a mobile device.
One attempt to implement a server-based solution in an intermittent connectivity environment involves the use of a queuing software application that manages message transmission between a mobile application and a server-based application. In such an embodiment, if communications are not available, the queue software application obtains outgoing messages and stores the messages in the order in which they are received. When communications become available, the messages are transmitted. However, many typical queuing software applications are implemented in embodiments, such as electronic mail delivery applications, that do not require reliability and security as part of the message delivery. For example, traditional queuing software applications do not incorporate routing determination functionality or support multiple communication protocols. Additionally, the traditional queuing software application does not provide additional data processing without requiring additional software application components working in conjunction with the queuing software application. For example, traditional queuing software applications do not support multiple communication protocol communication models, in-order message delivery, complex routing and routing tracking as part of a standard software application. Accordingly, by requiring additional software application components to provide the additional functionality, traditional queuing software applications remain deficient for not integrating complex data processing in a manner that is scaleable and applicable to a wide variety of networked devices.
Thus, based upon the above-referenced problems associated with the prior art, there is a need for a system and method for facilitating communications management and data exchange in an intermittent connectivity communication environment.